#include "uart.h"
#include "type.h"
#include "memset.h"

extern void load_store_test(void);
extern void bne_test(void);
extern void add_test(void);
extern void sub_test(void);
extern void exe5_2_test(void);
extern void addi_test(void);
extern void lui_test(void);
extern void li_test(void);
extern void la_test(void);
extern void and_test(void);
extern void andi_test(void);
extern void or_test(void);
extern void ori_test(void);
extern void memcpy_test(void);
extern void branch_test(void);

void asm_test(void)
{
	load_store_test();
	bne_test();
	add_test();
	sub_test();
	exe5_2_test();
	addi_test();
	lui_test();
	li_test();
	la_test();
	and_test();
	andi_test();
	or_test();
	ori_test();
	memcpy_test();
	memset((void *)0x80210005, 0x55, 40);
	branch_test();
}

void kernel_main(void)
{
	uart_init();
	uart_send_string("Welcome RISC-V!\r\n");

	asm_test();

	while (1) {
		;
	}
}
